home *** CD-ROM | disk | FTP | other *** search
/ Aminet 33 / Aminet 33 - October 1999.iso / Aminet / util / misc / VMM_src.lha / VMM / lib / my_startup.asm < prev    next >
Encoding:
Assembly Source File  |  1995-06-03  |  2.5 KB  |  85 lines

  1.                INCLUDE   "exec/types.i"
  2.                INCLUDE   "exec/funcdef.i"
  3.                INCLUDE   "exec/exec_lib.i"
  4.                INCLUDE   "dos/dosextens.i"
  5.                INCLUDE   "dos/dos_lib.i"
  6.  
  7.                XDEF      _SysBase
  8.                XDEF      _DOSBase
  9.                XDEF      _stdout
  10.                XDEF      _stdin
  11.                XDEF      ___main
  12.                XREF      _main
  13.  
  14.                SECTION   ,CODE
  15.  
  16. Start:         move.l    4,a6
  17.                move.l    a6,_SysBase
  18.                lea       dos_name(pc),a1
  19.                moveq     #37,d0
  20.                jsr       _LVOOpenLibrary(a6)
  21.                move.l    d0,_DOSBase
  22.                beq       Error
  23.                suba.l    a1,a1
  24.                jsr       _LVOFindTask(a6)
  25.                move.l    d0,a4
  26.                tst.l     pr_CLI(a4)
  27.                beq       WBStartup
  28.  
  29. CLIStartup:    move.l    _DOSBase,a6
  30.                jsr       _LVOOutput(a6)
  31.                move.l    d0,_stdout
  32.                jsr       _LVOInput(a6)
  33.                move.l    d0,_stdin
  34.                jsr       _main
  35.                move.l    d0,-(sp)
  36.                move.l    _DOSBase,a1
  37.                move.l    4,a6
  38.                jsr       _LVOCloseLibrary(a6)
  39.                move.l    (sp)+,d0
  40. Error          rts
  41.  
  42.  
  43. WBStartup:     * called with
  44.                * A4: Process
  45.                * A6: SysBase
  46.                lea       pr_MsgPort(a4),a0
  47.                jsr       _LVOWaitPort(a6)
  48.                lea       pr_MsgPort(a4),a0
  49.                jsr       _LVOGetMsg(a6)
  50.                move.l    d0,-(sp)            ; save it for later replying
  51.                move.l    _DOSBase,a6
  52.                move.l    #WinName,d1
  53.                move.l    #MODE_NEWFILE,d2
  54.                jsr       _LVOOpen(a6)
  55.                move.l    d0,_WinFile
  56.                beq       ReturnMsg
  57.                move.l    d0,_stdout
  58.                move.l    d0,_stdin
  59.                jsr       _main
  60.                move.l    _WinFile,d1
  61.                move.l    _DOSBase,a6
  62.                jsr       _LVOClose(a6)
  63.  
  64. ReturnMsg:     move.l    4,a6
  65.                move.l    _DOSBase,a1
  66.                jsr       _LVOCloseLibrary(a6)
  67.                jsr       _LVOForbid(a6)
  68.                move.l    (sp)+,a1
  69.                jmp       _LVOReplyMsg(a6)
  70.  
  71. ___main        rts
  72.  
  73. dos_name       dc.b      'dos.library',0
  74. WinName        dc.b      'CON:0/0/640/200/CLOSE/AUTO/WAIT/VMM Window',0
  75.  
  76.                SECTION   ,DATA
  77.  
  78. _SysBase       ds.l      1
  79. _DOSBase       ds.l      1
  80. _stdout        ds.l      1
  81. _stdin         ds.l      1
  82. _WinFile       ds.l      1
  83.  
  84.                end
  85.